home *** CD-ROM | disk | FTP | other *** search
/ Stone Design / Stone Design.iso / Stone_Friends / Wave / WavesWorld / Examples / support / wheel.wwModel / fullModel.eve next >
Encoding:
Text File  |  1995-03-22  |  2.1 KB  |  64 lines

  1. set tire(thickness) {0.100000};
  2. set tire(radius) {2.0};
  3. set tire(color) {.3 .1 .1};
  4.  
  5. EveCmd {set rim(minorRadius) [expr {1.2 * $tire(thickness)}]}
  6. EveCmd {set rim(majorRadius) [expr {$tire(radius) *.995}]}
  7. set rim(color) {0.924665 0.901624 1.000000};
  8.  
  9. set rubber RCRubber
  10. set metal RCMetal
  11.  
  12. set spoke(xTranslate) 0
  13. set spoke(yTranslate) 0
  14. set spoke(zTranslate) .15
  15. set spoke(xRotate) -90
  16. set spoke(lOffset) -4.25
  17. set spoke(rOffset) 4.25
  18. set spoke(yRotate) 0
  19. set spoke(yRotateIncr) 15
  20. set spoke(pairCount) 1
  21. #spokes should be about 10% of the thickness of the tire (say)
  22. EveCmd {set spoke(radius) [expr {$tire(thickness) * .1}]}
  23.  
  24. startShape wheel
  25.     startShape innerRim
  26.         Surface $metal
  27.         EveCmd {Color $rim(color)}
  28.         TransformBegin
  29.            EveCmd {Scale $tire(thickness) $tire(thickness) $tire(thickness)}
  30.           EveCmd {Torus $tire(radius) [expr {$tire(radius) * .75}] 90 270 360} 
  31.         TransformEnd 
  32.         for {set i 0} {$i < $spoke(pairCount)} {incr i} \
  33.                 {  startShape spokeL${i};
  34.             EveCmd {Color $rim(color)};
  35.             Surface $metal;
  36.             Translate $spoke(xTranslate) $spoke(yTranslate) $spoke(zTranslate);
  37.             Rotate [expr {$spoke(xRotate) + $spoke(lOffset)}] 1 0 0;
  38.             Rotate $spoke(yRotate) 0 1 0;
  39.             EveCmd {Cylinder $spoke(radius) $spoke(zTranslate) $tire(radius) 360};
  40.                         set spoke(yRotate) [expr {$spoke(yRotate) + $spoke(yRotateIncr)}]
  41.              endShape;
  42.                    startShape spokeR${i};
  43.             EveCmd {Color $rim(color)};
  44.             Surface $metal;
  45.             Translate $spoke(xTranslate) $spoke(yTranslate) [expr {-1 * $spoke(zTranslate)}];
  46.             Rotate [expr {$spoke(xRotate) + $spoke(rOffset)}] 1 0 0;
  47.             Rotate $spoke(yRotate) 0 1 0;
  48.             EveCmd {Cylinder $spoke(radius) $spoke(zTranslate) $tire(radius) 360};
  49.                         set spoke(yRotate) [expr {$spoke(yRotate) + $spoke(yRotateIncr)}]
  50.              endShape;
  51.                 }
  52.         startShape tire
  53.             Surface $rubber
  54.             EveCmd {Color $tire(color)}
  55.             EveCmd {Torus $tire(radius) $tire(thickness) 0 360 360}
  56.         endShape
  57.         startShape rim
  58.             Surface $metal
  59.             EveCmd {Color $rim(color)}
  60.             EveCmd {Torus $rim(majorRadius)  $rim(minorRadius) 90 270  360}
  61.         endShape
  62.     endShape
  63. endShape
  64.